The present invention relates to digital signatures, and in particular, among other things, to identity-based digital signatures and other individual and aggregate signatures.
A digital signature is a string of characters (e.g., bits) that allows a hypothesis to be verified cryptographically. For example, for the hypothesis that that Bob approved the contents of document D, Bob can generate a digital signature S on the document D using his secret signing key SK which corresponds to his public signature verification key VK. Anyone who knows S, D and VK (and who has confirmed that VK is Bob's public key, rather than an impostor's) can verify cryptographically that Bob has indeed approved the document D. S, together with the additional required verification information (D,VK), is Bob's digital signature. If the digital signature scheme is secure, it must be hard for people other than Bob to forge his digital signature, since they do not know Bob's secret SK.
The notion of digital signatures was proposed in 1976 by Diffie and Hellman in their paper “New Directions in Cryptography.” Since then, much work has been done to make digital signatures efficient. For example, one line of research is to find signature schemes that are computationally efficient, in the sense that signature generation or signature verification (or both) can be completed verify quickly, even on devices that have slow processors. Another line of research is to find signature schemes that are bandwidth efficient, in the sense that the digital signature scheme adds minimal bandwidth overhead. The invention described in the present patent application belongs primarily to the second line of research.
1. Previous Solutions
In the prior art, several approaches have been taken to make signature schemes more bandwidth-efficient. One approach is to make the size of S as small as possible (in terms of the number of bits needed to convey the value of S). For example, in their paper “Short Signatures from the Weil Pairing” (in Proc. of Asiacrypt 2001, LNCS 2248, pages 514-532, Springer-Verlag, 2001), incorporated herein by reference, Boneh, Lynn and Shacham described a signature scheme that achieves sufficient security (under assumption called the “computational Diffie-Heilman” assumption) even if the signatures are only about 160 bits. However, although S is only 160 bits, other information is also needed to verify the signature—namely, the signer's public signature verification key VK and a description D of the document that the signer signed. So, the signature scheme's overall bandwidth is not really 160 bits; it is 160+|VK|+|D|, where |D| denotes the number of bits needed to describe the document that was signed, and |VK| denotes the length of the signer's verification key.
Another approach for achieving bandwidth-efficient signatures is signatures that allow message recovery. In these schemes, a verifier can recover some number (say, k) bits of D from the signature S. Thus, the total number of bits needed to verify the signature is |S|+|VK|+(|D|−k). In all of the currently known signature schemes that allow message recovery, k is at most |S|−160; so, the total information needed to verify is still at least 160+|VK|+|D|, just as in the Boneh-Lynn-Shacham scheme.
Yet another approach that is sometimes described as enabling a bandwidth improvement is identity-based signatures. (See A. Shamir, “Identity-Based Cryptosystems and Signature Schemes,” in Proc. of Crypto 1984, LNCS 196, pages 47-53, Springer-Verlag, 1985, incorporated herein by reference.) In an identity-based signature scheme, the signer (call him “Bob”) does not generate his own key pair (SK, VK), as he does in an ordinary digital signature scheme. Instead, a trusted authority called a “Private Key Generator” (PKG) generates Bob's secret key SKBob for him as a function of Bob's “identity” IDBob (e.g., his name or email address) and the PKG's own secret key SKPKG. To verify Bob's signature S on document D, the verifier also needs Bob's identity IDBob and his PKG's public key PKPKG. Bob's identity can be arbitrarily short—e.g., much less than 160 bits—but the PKG's public key is typically fairly long (e.g., 160 bits or more); thus, there is not really a significant bandwidth advantage over the bandwidth-efficient approaches described above. However, notice an interesting aspect of identity-based signature schemes (that will later be useful for identity-based aggregate signatures, as described in the present invention)—namely, that the verifier does not need an individualized public verification key VK specifically for Bob to verify Bob's signature; instead, the verifier only needs a public key for Bob's PKG (which may act as PKG for many other clients, as well).
Still another approach for achieving bandwidth-efficient signatures is aggregate signatures. An aggregate signature scheme allows signatures on different documents that are produced by different signers to be “aggregated” into a single short signature. More specifically, suppose that there are n signers with public signature verification keys (VK1, . . . , VKn) and that these n signers sign the respective documents (D1, . . . , Dn), thereby producing n signatures (S1, . . . , Sn). In an aggregate signature scheme, the values (S1, . . . , Sn) can be aggregated into a single “short” value S. It should be the case that |S| is much less that |S1|+ . . . +|Sn|; ideally, |S| should not even depend on n (the number of signatures that are aggregated). The total information needed to verify that, for all I ∈ [1,n], the signer with verification key VKi signed document Di is |VK1|+ . . . +|VKn|+|D|+|S|, where D is a description of the signed documents (D1, . . . , Dn) that may be more compact than listing D1 through Dn separately. In prior art aggregate signature schemes, the description of the respective verification keys cannot be aggregated; thus, the total verification information grows linearly with n, even if the description of the signed documents D does not. Currently, there are two aggregate signature schemes.
One aggregate signature scheme, described in patent application Ser. No. 10/499,853 entitled “Signature Schemes Using Bilinear Mappings”, filed Apr. 15, 2003 by Craig Gentry, incorporated herein by reference, uses bilinear “pairings” (e.g., as defined over elliptic curves or Abelian varieties), and it allows anyone to aggregate a collection of signatures in any order. Another scheme—described in A. Lysyanskaya, S. Micali, L. Reyzin, and H. Shacham, “Sequential Aggregate Signatures from Trapdoor Permutations,” in Proc. of Eurocrypt 2004, LNCS 3027, pages 74-90, Springer-Verlag, 2004, incorporated herein by reference) allows only sequential aggregation (which is less flexible), but it uses the more widely-accepted notion of a trapdoor permutation (as opposed to the notion of pairings, which have been used to construct cryptosystems only in recent years). The second scheme does not achieve the “ideal” objective of aggregate signature schemes—namely, to make S independent of n. Rather, in their scheme, the size of S increases by a bit or two for each additional signer. Since |S| grows quite slowly as n increases, their scheme is considered to be an aggregate signature scheme even though it does not achieve the ideal objective.
2. Drawbacks of Previous Solutions
The ultimate objective of the line of research focusing on bandwidth efficiency is to find a signature scheme in which the total information needed to verify is minimized. For any signature scheme, one must have a description K of who signed what (though some of this description may be folded into other variables, as in the signature scheme with message recovery). K has a certain Kolmogorov complexity, which is the minimum number of bits that are needed to convey the value of K. Therefore, the ultimate objective of this line of research is to minimize the amount of information in addition to K that is needed to verify the signature. Or, to put it another way, the ultimate objective is to find a signature scheme that is as close as possible to being “Kolmogorov-optimal.”
There is a need for a scheme that adds at most a small constant number (i.e., a number of bits independent of n) of bits to the Kolmogorov lower-bound |K|.